Model predictive control (MPC) is used in many applications to control complex dynamical systems. Examples of such systems include production lines, car engines, robots, other numerically controlled machining, and power generators.
The MPC is based on a real time finite horizon optimization of a model of a system. The MPC has the ability to anticipate future events, and to take appropriate control actions. This is achieved by optimizing the operation of the system over a future finite time-horizon subject to constraints, and only implementing the control over a current time step.
The MPC can predict the change in dependent variables of the modeled system caused by changes in independent variables. In a chemical process, for example, independent variables that can be adjusted by the controller are often pressure, flow, temperature, opening of the valves, and stiffness of dampers. Independent variables that cannot be adjusted by the controller are treated as disturbances. Dependent variables in these processes are other measurements that represent either control objectives or process constraints.
The MPC uses models of the system, the current system measurements, the current dynamic state of the process, and the process variable targets and limits to calculate future changes in the dependent variables. These changes are calculated to hold the dependent variables close to target subject to constraints on both independent and dependent variables.
The MPC numerical methods are implemented on various computational apparatus, often designed specifically for a given system. Computational apparatus can range from inexpensive fixed-point precision embedded controllers to sophisticated multi-core computer processor units (CPU), graphics processing unit (GPU), field-programmable gate array (FPGA), or dedicated parallel computer clusters.
Model predictive controllers rely on dynamic models of the process, most often linear empirical models, in which case the MPC is linear. Nonlinear MPC (NMPC), which describes systems with nonlinear models or constraints, is often more realistic, compared to the linear MPC, but computationally more difficult. Similar to the linear MPC, the NMPC requires solving optimal control problems on a finite prediction horizon, generally not convex, which poses challenges for obtaining a numerical solution in real time. The numerical solution of the NMPC optimal control problems is often based on Newton-type optimization schemes.
Exact Newton-type optimization schemes require an analytic expression of a corresponding Jacobian matrix, which is rarely available in practice and is commonly replaced with a forward difference (FD) approximation. Such approximate Newton-type optimization schemes utilize the FD approximation of the original nonlinear equation during every time step of the control.
In an application to the NMPC, such an approximate Newton-type optimization can be performed by a Continuation NMPC (CNMPC) numerical method described by Ohtsuka, T., “A Continuation/GMRES Method for Fast Computation of Nonlinear Receding Horizon Control,” Automatica, Vol. 40, No. 4, pp. 563-574, April 2004. One of the key repetitive and most computationally intensive steps in on-line calculations with CNMPC is numerical solution of a matrix equation Ax=b, where A is a coefficient matrix, x is a solution vector and b is a vector. The solution varies, from one time step of control to the next one, so do the coefficient matrix A and the vector b.
Entries of the solution vector x determine the output of the MPC method, which is used as an input control parameter for the system to control the system in real time. Therefore, there is a need for methods providing fast and accurate solution of the matrix equation Ax=b appearing in various MPC implementations, e.g., on embedded hardware controllers using inexpensive processing units and limited amount of often slow memory, connected to the processing units.
The coefficient matrix A in the CNMPC is not explicitly given and available only via matrix-vector products. Specifically, a computer code is available to compute a product A*X, where A is the coefficient matrix, * is a matrix-matrix product, and X is a single column-vector, or several column-vectors assembled into a matrix. In this disclosure, the action of this computer code is referred to as an application of “a coefficient function.” The coefficient function applied to a vector returns a product of the coefficient matrix and the vector. Internally, the coefficient function requires, e.g., evaluation of the state and costate equations by solving a number of differential equations, as described by Ohtsuka.
Because the coefficient matrix A is only available via the coefficient function, rather than in the matrix format, direct matrix solvers, requiring access to matrix entries, are not used in the CNMPC. Instead, so-called “matrix-free” iterative methods are used, which can operate having only the coefficient function without the coefficient matrix A. One conventional matrix-free iterative method for solving the matrix equation Ax=b of the CNMPC is the generalized minimal residual (GMRES) method. The use of GMRES for the FD approximation of the nonlinear equation during every time step is commonly called FDGMRES, and can be interpreted as an inexact Newton's method. In the context of CNMPC, FDGMRES is named Continuation/GMRES (C/GMRES).
FDGMRES requires matrix-vector multiplications involving the coefficient function. The overall cost of computations is proportional to the maximal number of FDGMRES steps. Slow convergence of FDGMRES results in slowing down on-line computations of the control and reducing control quality obtained in real time calculations in the controller.
In CNMPC and many other MPC methods, e.g., based on interior-point approximations, on-line numerical solution of systems of linear equations can be main bottleneck limiting the number of states, constraints, horizon time, and other important MPC variables, thus, reducing applicability of MPC for difficult and fast practical systems. Accordingly, it is desired to increase efficiency and on-line performance of a model predictive control of a system developing preconditioners for iterative solution of the linear systems required for the controller in real time.